#pragma once
#include <QString>
#include <QJsonObject>
#include "qaxios_global.h"

namespace Softwarer
{
	class QAXIOS_EXPORT Query
	{
	private:
		QString m_query = "";

	public:
		static Query* query();

		Query* addParam(const QString& key, int value);

		Query* addParam(const QString& key, bool value);

		Query* addParam(const QString& key, const QString& value);

		QString toQuery();
	};

	class QAXIOS_EXPORT IParam
	{ 
	protected:
		QJsonObject m_valueObject;

	public:
		QByteArray toParam();
	};

	class QAXIOS_EXPORT Param : public IParam
	{
	public:
		static Param* param();

		Param* addParam(const QString& name, int value);

		Param* addParam(const QString& name, const QString& value);
	};
}
